GraphInit creates a new, empty directed graph ready to accept directed edges with verrticies verrticies. All the graph information must be stored in the real Mac memory manager handle - it will be disposed with DisposeHandle and that must release all memory, so dont store any extra information outside the handle. Also, you must be able to deal with having multiple graphs instantiated simultaneously.
GraphAddDirectedEdge adds a directed edge from vertex1 to vertex2
GraphFindRoute find a route from vertex1 to vertex2. If such a route exists, then verticies is returns as a real Mac handle to an array of UInt32s, the first is vertex1, the last is vertex2. Each successive vertex must have previously had an edge added with GraphAddDirectedEdge. If no route exists, return nil for verticies. No vertex should appear more than once in the verticies handle, except for the case where vertex1 is the same as vertex2, in which case you must find a circular route from vertex1 back to itself and so vertex1 will appear exactly twice, once at the start and once at the end of the verticies handle.
*/
#include "Solution.h"
// Fill in your solution and then submit this folder